Current technologies and methods rely on XMPP/TURN/STUM/ICE “jabber” protocols (rooted in the instant messenger days) in order to connect two clients for real-time communication, either directly peer-to-peer (by successfully traversing NAT) or via a network relay (TURN). More specifically, current technologies include the following jabber-based solutions: ejabberd (existing popular XMPP server solution based on Erlang); OpenFire; Tigase; libjingle (Google's open-source implementation for p2p clients); TURN server (http://turnserver.souceforge.net/); and STUN server (http://sourceforge.net/projects/stun/). Regardless of the implementation, current XMPP-based technologies suffer from long connection times and many round-trips.
The longer the call establishment (connection) time between the caller and the callee, the more likely it is that the caller is going to hang up, out of impatience and frustration. Thus, the faster the connection time, the higher the probability is that a call connection will be established.
The drawings referred to in this description should be understood as not being drawn to scale except if specifically noted.